Семантичний аналіз і синтез об'єктної програми

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Лекція
Предмет:
Інші

Частина тексту файла

Семантичний аналіз і синтез об'єктної програми Семантичний аналіз є найменш формалізованою частиною процесу трансляції, оскільки стосується «змісту» тих конструкцій мови, які аналізуються на етапах лексичного і синтаксичного аналізу. Формально процес семантичного аналізу і синтезу об'єктної програми реалізує перетворення дерева виводу програми у текст еквівалентної форми. Це перетворення і складність його програмної реалізації суттєво залежать від вибору об'єктної мови. При цьому зазвичай синтаксичний аналіз чергується з семантичним. Спочатку синтаксичний аналізатор ідентифікує послідовність лексем, формуючи синтаксичну одиницю − вираз, оператор, виклик програми тощо, а потім розпізнана синтаксична одиниця (структура) розпізнається семантичним аналізатором. Семантичний аналізатор поділяється на ряд дрібніших семантичних аналізаторів − семантичних підпрограм, кожна з яких призначена для обробки одного конкретного типу програмної конструкції. Наприклад, описи масивів можуть оброблятись одним аналізатором, арифметичні вирази − другим, оператор умовного переходу − третім і т.д. Для простих трансляцій результатом роботи семантичного аналізатора може бути і об'єктна програма, але зазвичай виходом семантичного аналізатора є деяка внутрішня форма трансльованої програми − проміжна програма. При цьому часто проміжна програма породжується частинами і тому може бути дуже неефективною і вимагати оптимізації перед генерацією об'єктної програми. Семантичний аналіз дуже залежить від мови програмування, тому підходи і способи побудови семантичного аналізатора можуть суттєво відрізнятись для різних мов програмування. Але практично для всіх мов програмування під час семантичного аналізу у першу чергу потрібно виконати семантичний контроль, тобто перевірку семантичних (контекстних) умов у програмі або семантичних угод . Ці умови мають загальний характер і не залежать від змісту конкретної задачі. Опишемо деякі типові контексні умови. Умова єдиності опису ідентифікаторів, що іменують прості змінні, масиви, процедури, мітки. Крім того, формальний параметр процедури або функції не повинен входити більше одного разу у список формальних параметрів. Умови відповідності між входженнями ідентифікаторів при їх означенні та використанні. Входження-означення ідентифікатора є у конструкції, яка описує цей ідентифікатор. Наприклад, ідентифікатор мітки поміченого оператора − це входження-означення, а ідентифікатор мітки у операторі goto − це входження-використання. Ідентифікатори змінних, які входять у оператор присвоєння або в деякий вираз (наприклад, в умовному операторі), − це також входження-використання. Умова відповідності виконується, якщо для входження-використання деякого ідентифікатора знайдено відповідне входження-означення. Алгоритм пошуку входжень-означень називається алгоритмом ідентифікації. Для програм з блочною структурою дія алгоритму ідентифікації полягає у пошуку відповідного входження-означення у мінімальному блоці, що містить входження-використання. Якщо воно не знайдено, відбувається пошук у мінімальному блоці, який охоплює вже розглянутий блок і т.д. Якщо у програмі не знайдено входження-означення, та у мові не використовується правило означення ідентифікаторів за замовчуванням, то дана контекстна умова вважається невиконаною. Контексні умови для формальних параметрів процедур визначаються у такий спосіб: ідентифікатор описується або у блоці, де є тіло процедури, або у мінімальному блоці, що містить опис процедури, або може входити у список формальних параметрів. Алгоритми ідентифікації, крім перевірки умов відповідності, здійснюють збір інформації про об'єкти програми. Ця інформація пізніше використовується для правильної побудови фрагментів об'єктної програми з урахуванням контекстних умов. Умова відповідності типів значень. Ці умови регламентують відповідність видів величин, що входять у відповідні конструкції програми. Наприклад, операндами в арифметичних виразах, можуть бути тільки числові константи, ідентифік...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини